class cOpenCLInterface{
public:
 cOpenCLInterface();
 cOpenCLInterface(int platform_id, int device_id, const char * kernel_source_dir, vector<string> kernel_filenames,long seed);
 void test_rng();
private:
  #ifdef USE_GPU
  cl_int err;
  cl::CommandQueue * commandQueue;
  cl::Context * context;
  vector<cl::Device> devices;
  cl::Program * program;
  cl::Kernel * kernel_mersenne;
  cl::Buffer * buffer_mt_parameters;
  cl::Buffer * buffer_random_unif;
  #endif  
  void init_mersenne(const char * initial_state_file,mt_struct_stripped *mt_parameters,long seed);
  int samples_per_rng;
};
